9251
9251
Created at : 2024-01-07 11:14
9251
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string A, B;
vector<vector<int>> p;
cin >> A >> B;
p.resize(A.length() + 1);
for(int i = 0; i < p.size(); ++i)
{
p[i].resize(B.length() + 1);
for(int j = 0; j < p[i].size(); ++j)
{
p[i][j] = 0;
}
}
for(int i = 1; i < p.size(); ++i)
{
int a = i - 1;
for(int j = 1; j < p[i].size(); ++j)
{
int b = j - 1;
p[i][j] = max(p[i - 1][j], p[i][j - 1]);
if(A[a] == B[b])
{
p[i][j] = max(p[i][j], p[i - 1][j - 1] + 1);
}
}
}
cout << p[A.length()][B.length()];
return 0;
}
2차원 DP.